home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / dev / misc / dialoglib.lha / hbumper.c < prev    next >
C/C++ Source or Header  |  1993-03-06  |  1KB  |  62 lines

  1. #include <libraries/gadtools.h>
  2. #include <proto/utility.h>
  3. #include "dialog.h"
  4. #ifdef DEBUG1
  5.     #include <stdio.h>
  6. #endif
  7.  
  8. static VOID setupHBumper( DialogElement *de )
  9. {
  10.     LONG width;
  11.  
  12.     if( !de )
  13.         return;
  14.     if( !de->root )
  15.         return;
  16.  
  17.     width = GetTagData( DA_XSpacing, INTERWIDTH, de->root->taglist );
  18.     setMinWidth( de, width );
  19.     setMaxWidth( de, width );
  20.     setMinTopExtent( de, 0 );
  21.     setMaxTopExtent( de, 0 );
  22.     setMinBottomExtent( de, 0 );
  23.     setMaxBottomExtent( de, 0 );
  24. }
  25.  
  26. #ifdef DEBUG1
  27. VOID debug_layoutHBumper( DialogElement *de, LayoutMessage *lm )
  28. {
  29.     printf(
  30.     "layoutHBumper : x %d, y %d, width %d, height %d, left %d, right %d, top %d, bottom %d\n",
  31.         lm->lm_X, lm->lm_Y, lm->lm_Width, lm->lm_Height,
  32.         lm->lm_Left, lm->lm_Right, lm->lm_Top, lm->lm_Bottom );
  33. }
  34. #endif
  35.  
  36. ULONG dispatchHBumper( struct Hook *hook, DialogElement *de, DialogMessage *dm )
  37. {
  38.     ULONG result;
  39.  
  40.     switch( dm->dm_MethodID )
  41.     {
  42.     case DIALOGM_GETSTRUCT:
  43.         result = DESF_HBaseline;
  44.         break;
  45.     case DIALOGM_SETUP:
  46.         setupHBumper( de );
  47.         break;
  48.     case DIALOGM_LAYOUT:
  49. #ifdef DEBUG1
  50.         debug_layoutHBumper( de, (LayoutMessage *)dm );
  51. #endif
  52.         result = DIALOGERR_OK;
  53.         break;
  54.     case DIALOGM_MATCH:
  55.         result = 0;
  56.         break;
  57.     case DIALOGM_CLEAR:
  58.         break;
  59.     }
  60.     return result;
  61. }
  62.